<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>工业生产收率预测</title>
    <link rel="stylesheet" href="style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.4.2/dist/echarts.min.js"></script>
</head>
<body>
    <!-- 移动端导航切换按钮 -->
    <button class="mobile-nav-toggle" id="mobileNavToggle">
        <i class="fas fa-bars"></i>
    </button>

    <!-- 侧边导航栏 -->
    <aside class="sidebar" id="sidebar">
        <div class="sidebar-header">
            <div class="sidebar-title">文档目录</div>
            <button class="sidebar-toggle" id="sidebarToggle">
                <i class="fas fa-chevron-left"></i>
            </button>
        </div>
        <ul class="sidebar-nav">
            <li class="sidebar-nav-item">
                <a href="#section-0" class="sidebar-nav-link">
                    <span class="sidebar-icon"><i class="fas fa-home"></i></span>
                    <span class="sidebar-nav-text">项目背景与意义</span>
                </a>
            </li>
            <li class="sidebar-nav-item has-submenu">
                <a href="#section-2" class="sidebar-nav-link">
                    <span class="sidebar-icon"><i class="fas fa-database"></i></span>
                    <span class="sidebar-nav-text">数据分析与理解</span>
                </a>
                <ul class="sidebar-submenu">
                    <li class="sidebar-submenu-item">
                        <a href="#section-2-1" class="sidebar-submenu-link">数据集构成</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-2-2" class="sidebar-submenu-link">特征变量分析</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-2-3" class="sidebar-submenu-link">数据特点与挑战</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-2-4" class="sidebar-submenu-link">数据分布分析</a>
                    </li>
                </ul>
            </li>
            <li class="sidebar-nav-item has-submenu">
                <a href="#section-3" class="sidebar-nav-link">
                    <span class="sidebar-icon"><i class="fas fa-tools"></i></span>
                    <span class="sidebar-nav-text">数据预处理与特征工程</span>
                </a>
                <ul class="sidebar-submenu">
                    <li class="sidebar-submenu-item">
                        <a href="#section-3-1" class="sidebar-submenu-link">数据清洗与预处理</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-3-2" class="sidebar-submenu-link">特征工程</a>
                    </li>
                </ul>
            </li>
            <li class="sidebar-nav-item has-submenu">
                <a href="#section-4" class="sidebar-nav-link">
                    <span class="sidebar-icon"><i class="fas fa-brain"></i></span>
                    <span class="sidebar-nav-text">模型构建</span>
                </a>
                <ul class="sidebar-submenu">
                    <li class="sidebar-submenu-item">
                        <a href="#section-4-1" class="sidebar-submenu-link">模型选择</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-4-2" class="sidebar-submenu-link">模型训练策略</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-4-3" class="sidebar-submenu-link">模型参数</a>
                    </li>
                </ul>
            </li>
            <li class="sidebar-nav-item has-submenu">
                <a href="#section-5" class="sidebar-nav-link">
                    <span class="sidebar-icon"><i class="fas fa-chart-line"></i></span>
                    <span class="sidebar-nav-text">模型评估</span>
                </a>
                <ul class="sidebar-submenu">
                    <li class="sidebar-submenu-item">
                        <a href="#section-5-1" class="sidebar-submenu-link">评估指标</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-5-2" class="sidebar-submenu-link">交叉验证结果</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-5-3" class="sidebar-submenu-link">特征重要性分析</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-5-4" class="sidebar-submenu-link">预测精度可视化</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-5-5" class="sidebar-submenu-link">特征影响力可视化</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-5-6" class="sidebar-submenu-link">模型泛化能力验证</a>
                    </li>
                </ul>
            </li>
            <li class="sidebar-nav-item has-submenu">
                <a href="#section-6" class="sidebar-nav-link">
                    <span class="sidebar-icon"><i class="fas fa-lightbulb"></i></span>
                    <span class="sidebar-nav-text">应用价值</span>
                </a>
                <ul class="sidebar-submenu">
                    <li class="sidebar-submenu-item">
                        <a href="#section-6-1" class="sidebar-submenu-link">工艺优化建议</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-6-2" class="sidebar-submenu-link">未来展望</a>
                    </li>
                </ul>
            </li>
            <li class="sidebar-nav-item">
                <a href="#section-7" class="sidebar-nav-link">
                    <span class="sidebar-icon"><i class="fas fa-code"></i></span>
                    <span class="sidebar-nav-text">完整工作流程</span>
                </a>
            </li>
            <li class="sidebar-nav-item has-submenu">
                <a href="#section-7" class="sidebar-nav-link">
                    <span class="sidebar-icon"><i class="fas fa-lightbulb"></i></span>
                    <span class="sidebar-nav-text">工业领域应用借鉴</span>
                </a>
                <ul class="sidebar-submenu">
                    <li class="sidebar-submenu-item">
                        <a href="#section-7-1" class="sidebar-submenu-link">冶金行业挑战</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-7-2" class="sidebar-submenu-link">智能优化场景</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-7-3" class="sidebar-submenu-link">典型流程与案例</a>
                    </li>
                    <li class="sidebar-submenu-item">
                        <a href="#section-7-4" class="sidebar-submenu-link">经验总结与展望</a>
                    </li>
                </ul>
            </li>
        </ul>
    </aside>

    <!-- 主内容区域 -->
    <main class="main-content" id="mainContent">
        <h1>工业生产收率预测模型技术文档</h1>
        
        <div class="highlight">
            <p><strong>项目概述：</strong>本项目运用机器学习与数据挖掘技术，基于异烟酸生产过程中的多维参数数据，构建高精度预测模型，实现对异烟酸最终收率的精确预测，为生产工艺优化和智能制造转型提供数据驱动支持。本项目采用XGBoost算法，通过特征工程和模型优化，实现了0.000129的均方误差，显著提升了预测精度。</p>
        </div>
        
        <h2 id="section-0">1. 项目背景与意义</h2>
        <p>异烟酸（3-羧基吡啶，烟酸），分子式C<sub>6</sub>H<sub>5</sub>NO<sub>2</sub>，是一种重要的化工原料和医药中间体，广泛应用于医药、农业和食品添加剂等领域。作为维生素B<sub>3</sub>的重要形式，异烟酸在医药领域用于治疗高脂血症和降低胆固醇；在农业领域用作植物生长调节剂；在食品工业中作为营养强化剂。</p>
        
        <p>在异烟酸的工业生产过程中，生产收率是衡量生产效率的关键指标，直接影响以下方面：</p>
        <ul>
            <li><strong>经济效益</strong>：收率每提高1%，可为企业带来显著的经济效益提升</li>
            <li><strong>资源利用</strong>：提高收率意味着更高效地利用原材料，减少资源浪费</li>
            <li><strong>环境影响</strong>：收率提高可减少废弃物产生，降低环境负担</li>
            <li><strong>产品质量</strong>：稳定的收率往往与产品质量稳定性相关</li>
        </ul>
        
        <p>传统的生产工艺优化主要依赖于经验积累和反复试验，存在以下问题：</p>
        <ul>
            <li><strong>试验成本高</strong>：每次工艺调整需要完整的生产批次，成本高昂</li>
            <li><strong>周期长</strong>：从试验到结果分析需要较长时间，影响优化效率</li>
            <li><strong>参数关联复杂</strong>：难以准确量化多个工艺参数之间的复杂交互关系</li>
            <li><strong>经验依赖性强</strong>：过度依赖专家经验，知识传承困难</li>
            <li><strong>无法实现精确预测</strong>：缺乏科学的预测方法，难以进行智能控制</li>
        </ul>
        
        <p>随着工业4.0和智能制造的发展，利用数据驱动方法优化生产工艺成为可能。本项目正是在这一背景下，尝试通过机器学习方法，建立异烟酸收率的预测模型，为生产优化提供科学依据。项目的主要意义体现在：</p>
        
        <ul>
            <li><strong>科学决策</strong>：用数据说话，为工艺参数调整提供科学依据</li>
            <li><strong>降本增效</strong>：通过提高收率，降低生产成本，提高经济效益</li>
            <li><strong>智能制造</strong>：为化工生产的数字化、智能化转型提供技术支撑</li>
            <li><strong>绿色生产</strong>：通过提高资源利用效率，减少废弃物排放，实现绿色生产</li>
        </ul>
        
        <div class="visualization">
            <div class="visualization-title">异烟酸收率预测系统架构</div>
            <div class="system-architecture">
                <svg width="100%" height="500" viewBox="0 0 800 500" xmlns="http://www.w3.org/2000/svg">
                    <defs>
                        <linearGradient id="gradient-data" x1="0%" y1="0%" x2="100%" y2="0%">
                            <stop offset="0%" style="stop-color:#3498db;stop-opacity:0.9" />
                            <stop offset="100%" style="stop-color:#2980b9;stop-opacity:0.9" />
                        </linearGradient>
                        <linearGradient id="gradient-preprocess" x1="0%" y1="0%" x2="100%" y2="0%">
                            <stop offset="0%" style="stop-color:#2ecc71;stop-opacity:0.9" />
                            <stop offset="100%" style="stop-color:#27ae60;stop-opacity:0.9" />
                        </linearGradient>
                        <linearGradient id="gradient-model" x1="0%" y1="0%" x2="100%" y2="0%">
                            <stop offset="0%" style="stop-color:#9b59b6;stop-opacity:0.9" />
                            <stop offset="100%" style="stop-color:#8e44ad;stop-opacity:0.9" />
                        </linearGradient>
                        <linearGradient id="gradient-app" x1="0%" y1="0%" x2="100%" y2="0%">
                            <stop offset="0%" style="stop-color:#e67e22;stop-opacity:0.9" />
                            <stop offset="100%" style="stop-color:#d35400;stop-opacity:0.9" />
                        </linearGradient>
                        <filter id="drop-shadow" x="-20%" y="-20%" width="140%" height="140%">
                            <feGaussianBlur in="SourceAlpha" stdDeviation="3" />
                            <feOffset dx="2" dy="2" result="offsetblur" />
                            <feComponentTransfer>
                                <feFuncA type="linear" slope="0.2" />
                            </feComponentTransfer>
                            <feMerge>
                                <feMergeNode />
                                <feMergeNode in="SourceGraphic" />
                            </feMerge>
                        </filter>
                        <marker id="arrowhead" markerWidth="10" markerHeight="7" refX="0" refY="3.5" orient="auto">
                            <polygon points="0 0, 10 3.5, 0 7" fill="#34495e" />
                        </marker>
                    </defs>
                    
                    <!-- 系统标题 -->
                    <text x="400" y="40" font-family="Arial" font-size="24" text-anchor="middle" fill="#2c3e50" font-weight="bold" class="layer-title">异烟酸收率预测系统架构</text>
                    
                    <!-- 数据层 -->
                    <rect x="50" y="80" width="700" height="70" rx="8" ry="8" fill="url(#gradient-data)" filter="url(#drop-shadow)" class="layer-rect" />
                    <text x="400" y="115" font-family="Arial" font-size="18" text-anchor="middle" fill="#ffffff" font-weight="bold" class="layer-title">数据层</text>
                    
                    <!-- 数据层组件 -->
                    <g class="component">
                        <rect x="80" y="90" width="100" height="50" rx="5" ry="5" fill="#ffffff" stroke="#3498db" stroke-width="1" />
                        <text x="130" y="120" font-family="Arial" font-size="14" text-anchor="middle" fill="#3498db" class="component-text">DCS系统</text>
                    </g>
                    
                    <g class="component">
                        <rect x="200" y="90" width="100" height="50" rx="5" ry="5" fill="#ffffff" stroke="#3498db" stroke-width="1" />
                        <text x="250" y="120" font-family="Arial" font-size="14" text-anchor="middle" fill="#3498db" class="component-text">LIMS系统</text>
                    </g>
                    
                    <g class="component">
                        <rect x="320" y="90" width="100" height="50" rx="5" ry="5" fill="#ffffff" stroke="#3498db" stroke-width="1" />
                        <text x="370" y="120" font-family="Arial" font-size="14" text-anchor="middle" fill="#3498db" class="component-text">MES系统</text>
                    </g>
                    
                    <g class="component">
                        <rect x="440" y="90" width="100" height="50" rx="5" ry="5" fill="#ffffff" stroke="#3498db" stroke-width="1" />
                        <text x="490" y="120" font-family="Arial" font-size="14" text-anchor="middle" fill="#3498db" class="component-text">传感器</text>
                    </g>
                    
                    <g class="component">
                        <rect x="560" y="90" width="150" height="50" rx="5" ry="5" fill="#ffffff" stroke="#3498db" stroke-width="1" />
                        <text x="635" y="120" font-family="Arial" font-size="14" text-anchor="middle" fill="#3498db" class="component-text">人工记录</text>
                    </g>
                    
                    <!-- 箭头连接 -->
                    <path d="M400,150 L400,170" stroke="#34495e" stroke-width="2" marker-end="url(#arrowhead)" class="arrow" />
                    
                    <!-- 预处理层 -->
                    <rect x="50" y="180" width="700" height="70" rx="8" ry="8" fill="url(#gradient-preprocess)" filter="url(#drop-shadow)" class="layer-rect" />
                    <text x="400" y="215" font-family="Arial" font-size="18" text-anchor="middle" fill="#ffffff" font-weight="bold" class="layer-title">数据预处理层</text>
                    
                    <!-- 预处理层组件 -->
                    <g class="component">
                        <rect x="80" y="190" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#2ecc71" stroke-width="1" />
                        <text x="140" y="220" font-family="Arial" font-size="14" text-anchor="middle" fill="#2ecc71" class="component-text">数据清洗</text>
                    </g>
                    
                    <g class="component">
                        <rect x="220" y="190" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#2ecc71" stroke-width="1" />
                        <text x="280" y="220" font-family="Arial" font-size="14" text-anchor="middle" fill="#2ecc71" class="component-text">特征工程</text>
                    </g>
                    
                    <g class="component">
                        <rect x="360" y="190" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#2ecc71" stroke-width="1" />
                        <text x="420" y="220" font-family="Arial" font-size="14" text-anchor="middle" fill="#2ecc71" class="component-text">特征选择</text>
                    </g>
                    
                    <g class="component">
                        <rect x="500" y="190" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#2ecc71" stroke-width="1" />
                        <text x="560" y="220" font-family="Arial" font-size="14" text-anchor="middle" fill="#2ecc71" class="component-text">归一化</text>
                    </g>
                    
                    <g class="component">
                        <rect x="640" y="190" width="70" height="50" rx="5" ry="5" fill="#ffffff" stroke="#2ecc71" stroke-width="1" />
                        <text x="675" y="220" font-family="Arial" font-size="14" text-anchor="middle" fill="#2ecc71" class="component-text">分割</text>
                    </g>
                    
                    <!-- 箭头连接 -->
                    <path d="M400,250 L400,270" stroke="#34495e" stroke-width="2" marker-end="url(#arrowhead)" class="arrow" />
                    
                    <!-- 模型层 -->
                    <rect x="50" y="280" width="700" height="70" rx="8" ry="8" fill="url(#gradient-model)" filter="url(#drop-shadow)" class="layer-rect" />
                    <text x="400" y="315" font-family="Arial" font-size="18" text-anchor="middle" fill="#ffffff" font-weight="bold" class="layer-title">模型层</text>
                    
                    <!-- 模型层组件 -->
                    <g class="component">
                        <rect x="80" y="290" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#9b59b6" stroke-width="1" />
                        <text x="140" y="320" font-family="Arial" font-size="14" text-anchor="middle" fill="#9b59b6" class="component-text">梯度提升树</text>
                    </g>
                    
                    <g class="component">
                        <rect x="220" y="290" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#9b59b6" stroke-width="1" />
                        <text x="280" y="320" font-family="Arial" font-size="14" text-anchor="middle" fill="#9b59b6" class="component-text">神经网络</text>
                    </g>
                    
                    <g class="component">
                        <rect x="360" y="290" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#9b59b6" stroke-width="1" />
                        <text x="420" y="320" font-family="Arial" font-size="14" text-anchor="middle" fill="#9b59b6" class="component-text">随机森林</text>
                    </g>
                    
                    <g class="component">
                        <rect x="500" y="290" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#9b59b6" stroke-width="1" />
                        <text x="560" y="320" font-family="Arial" font-size="14" text-anchor="middle" fill="#9b59b6" class="component-text">模型融合</text>
                    </g>
                    
                    <g class="component">
                        <rect x="640" y="290" width="70" height="50" rx="5" ry="5" fill="#ffffff" stroke="#9b59b6" stroke-width="1" />
                        <text x="675" y="320" font-family="Arial" font-size="14" text-anchor="middle" fill="#9b59b6" class="component-text">评估</text>
                    </g>
                    
                    <!-- 箭头连接 -->
                    <path d="M400,350 L400,370" stroke="#34495e" stroke-width="2" marker-end="url(#arrowhead)" class="arrow" />
                    
                    <!-- 应用层 -->
                    <rect x="50" y="380" width="700" height="70" rx="8" ry="8" fill="url(#gradient-app)" filter="url(#drop-shadow)" class="layer-rect" />
                    <text x="400" y="415" font-family="Arial" font-size="18" text-anchor="middle" fill="#ffffff" font-weight="bold" class="layer-title">应用层</text>
                    
                    <!-- 应用层组件 -->
                    <g class="component">
                        <rect x="80" y="390" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#e67e22" stroke-width="1" />
                        <text x="140" y="420" font-family="Arial" font-size="14" text-anchor="middle" fill="#e67e22" class="component-text">收率预测</text>
                    </g>
                    
                    <g class="component">
                        <rect x="220" y="390" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#e67e22" stroke-width="1" />
                        <text x="280" y="420" font-family="Arial" font-size="14" text-anchor="middle" fill="#e67e22" class="component-text">参数优化</text>
                    </g>
                    
                    <g class="component">
                        <rect x="360" y="390" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#e67e22" stroke-width="1" />
                        <text x="420" y="420" font-family="Arial" font-size="14" text-anchor="middle" fill="#e67e22" class="component-text">异常告警</text>
                    </g>
                    
                    <g class="component">
                        <rect x="500" y="390" width="120" height="50" rx="5" ry="5" fill="#ffffff" stroke="#e67e22" stroke-width="1" />
                        <text x="560" y="420" font-family="Arial" font-size="14" text-anchor="middle" fill="#e67e22" class="component-text">决策支持</text>
                    </g>
                    
                    <g class="component">
                        <rect x="640" y="390" width="70" height="50" rx="5" ry="5" fill="#ffffff" stroke="#e67e22" stroke-width="1" />
                        <text x="675" y="420" font-family="Arial" font-size="14" text-anchor="middle" fill="#e67e22" class="component-text">报表</text>
                    </g>
                    
                    <!-- 反馈箭头 -->
                    <path d="M750,420 L770,420 L770,130 L750,130" stroke="#34495e" stroke-width="2" stroke-dasharray="5,5" marker-end="url(#arrowhead)" class="arrow" />
                    <text x="780" y="270" font-family="Arial" font-size="14" text-anchor="middle" fill="#7f8c8d" transform="rotate(90,780,270)" class="component-text">反馈优化</text>
                    
                    <!-- 数据流箭头 -->
                    <path d="M50,130 L30,130 L30,420 L50,420" stroke="#34495e" stroke-width="2" stroke-dasharray="5,5" marker-end="url(#arrowhead)" class="arrow" />
                    <text x="20" y="270" font-family="Arial" font-size="14" text-anchor="middle" fill="#7f8c8d" transform="rotate(-90,20,270)" class="component-text">数据流</text>
                </svg>
            </div>
            <p style="text-align: center;"><em>图1：异烟酸收率预测系统架构</em></p>
        </div>
        
        <div class="chart">
            <img src="../1.png" alt="异烟酸生产工艺流程图">
            <p style="text-align: center;"><em>图2：异烟酸生产工艺流程示意图</em></p>
        </div>
        
        <h3>1.1 异烟酸生产工艺简介</h3>
        <p>异烟酸的工业生产主要采用4-氰基吡啶水解法，整个生产工艺可分为两个主要阶段：</p>
        
        <div class="workflow">
            <div class="step">
                <h3>第一阶段（A系列参数）</h3>
                <p>包括原料准备、反应、中和等步骤，主要涉及4-氰基吡啶、氢氧化钠等原料的投入和反应控制。</p>
            </div>
            <div class="step">
                <h3>第二阶段（B系列参数）</h3>
                <p>包括酸化、结晶、干燥等步骤，主要涉及盐酸用量、结晶时间、干燥温度等参数控制。</p>
            </div>
        </div>
        
        <p>生产过程中的关键环节包括：</p>
        <ol>
            <li><strong>水解反应</strong>：4-氰基吡啶在碱性条件下水解生成异烟酸钠</li>
            <li><strong>酸化处理</strong>：通过加入盐酸，将异烟酸钠转化为异烟酸</li>
            <li><strong>结晶纯化</strong>：通过控制温度、时间等条件，促进异烟酸结晶</li>
            <li><strong>干燥处理</strong>：控制干燥条件，获得符合质量标准的最终产品</li>
        </ol>
        
        <p>在这一复杂的生产过程中，多个参数相互影响，共同决定了最终的产品收率。本项目正是通过分析这些参数之间的复杂关系，建立预测模型，为工艺优化提供支持。</p>
        
        <h2 id="section-1">1. 项目背景和意义</h2>
        <p>异烟酸是一种重要的医药和农业化工中间体，广泛用于医药、农药、食品添加剂等领域。本项目旨在通过数据分析和机器学习技术，对异烟酸生产过程进行建模，预测产品收率，并优化生产参数，以提高生产效率和产品质量。</p>
        
        <div class="visualization">
            <div class="visualization-title">异烟酸收率预测系统架构</div>
            <img src="../system_architecture.png" alt="系统架构图" onerror="this.style.display='none'; document.getElementById('svg-fallback').style.display='block';" style="width:100%; max-width:800px; margin:0 auto; display:block;">
            <div id="svg-fallback" style="display:none; width:100%; height:500px;">
                <svg width="100%" height="100%" viewBox="0 0 800 500" xmlns="http://www.w3.org/2000/svg">
                    <defs>
                        <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
                            <stop offset="0%" style="stop-color:#3498db;stop-opacity:1" />
                            <stop offset="100%" style="stop-color:#2ecc71;stop-opacity:1" />
                        </linearGradient>
                        <filter id="shadow" x="-10%" y="-10%" width="120%" height="120%">
                            <feDropShadow dx="3" dy="3" stdDeviation="5" flood-color="rgba(0,0,0,0.3)"/>
                        </filter>
                    </defs>
                    
                    <!-- 系统标题 -->
                    <text x="400" y="40" font-family="Arial" font-size="24" text-anchor="middle" fill="#2c3e50" font-weight="bold">异烟酸收率预测系统架构</text>
                    
                    <!-- 数据层 -->
                    <rect x="50" y="80" width="700" height="70" rx="10" ry="10" fill="#ecf0f1" filter="url(#shadow)"/>
                    <text x="400" y="110" font-family="Arial" font-size="18" text-anchor="middle" fill="#2c3e50" font-weight="bold">数据层</text>
                    <text x="400" y="135" font-family="Arial" font-size="14" text-anchor="middle" fill="#7f8c8d">生产数据 | 实验数据 | 质检数据 | 仪表数据 | 环境数据</text>
                    
                    <!-- 连接箭头 -->
                    <path d="M400,150 L400,180" stroke="#95a5a6" stroke-width="3" stroke-dasharray="5,5"/>
                    <polygon points="400,185 395,175 405,175" fill="#95a5a6"/>
                    
                    <!-- 预处理层 -->
                    <rect x="50" y="190" width="700" height="70" rx="10" ry="10" fill="#e8f8f5" filter="url(#shadow)"/>
                    <text x="400" y="220" font-family="Arial" font-size="18" text-anchor="middle" fill="#2c3e50" font-weight="bold">数据预处理层</text>
                    <text x="400" y="245" font-family="Arial" font-size="14" text-anchor="middle" fill="#7f8c8d">数据清洗 | 特征工程 | 异常检测 | 归一化 | 时间对齐</text>
                    
                    <!-- 连接箭头 -->
                    <path d="M400,260 L400,290" stroke="#95a5a6" stroke-width="3" stroke-dasharray="5,5"/>
                    <polygon points="400,295 395,285 405,285" fill="#95a5a6"/>
                    
                    <!-- 模型层 -->
                    <rect x="50" y="300" width="700" height="70" rx="10" ry="10" fill="#d6eaf8" filter="url(#shadow)"/>
                    <text x="400" y="330" font-family="Arial" font-size="18" text-anchor="middle" fill="#2c3e50" font-weight="bold">模型层</text>
                    <text x="400" y="355" font-family="Arial" font-size="14" text-anchor="middle" fill="#7f8c8d">梯度提升树 | 神经网络 | 随机森林 | 模型融合 | 超参数优化</text>
                    
                    <!-- 连接箭头 -->
                    <path d="M400,370 L400,400" stroke="#95a5a6" stroke-width="3" stroke-dasharray="5,5"/>
                    <polygon points="400,405 395,395 405,395" fill="#95a5a6"/>
                    
                    <!-- 应用层 -->
                    <rect x="50" y="410" width="700" height="70" rx="10" ry="10" fill="#d4efdf" filter="url(#shadow)"/>
                    <text x="400" y="440" font-family="Arial" font-size="18" text-anchor="middle" fill="#2c3e50" font-weight="bold">应用层</text>
                    <text x="400" y="465" font-family="Arial" font-size="14" text-anchor="middle" fill="#7f8c8d">收率预测 | 参数优化 | 异常告警 | 决策支持 | 可视化分析</text>
                    
                    <!-- 左侧垂直连接线 -->
                    <path d="M30,125 L30,445" stroke="#95a5a6" stroke-width="2"/>
                    <text x="20" y="290" font-family="Arial" font-size="14" text-anchor="middle" fill="#7f8c8d" transform="rotate(-90,20,290)">数据流</text>
                    
                    <!-- 右侧垂直连接线 -->
                    <path d="M770,125 L770,445" stroke="#95a5a6" stroke-width="2"/>
                    <text x="780" y="290" font-family="Arial" font-size="14" text-anchor="middle" fill="#7f8c8d" transform="rotate(90,780,290)">反馈循环</text>
                </svg>
            </div>
            <p style="text-align: center;"><em>图1：异烟酸收率预测系统架构</em></p>
        </div>
        
        <p>项目具有以下重要意义：</p>
        <div class="benefits-grid">
            <div class="benefit-card">
                <div class="benefit-icon">📈</div>
                <div class="benefit-title">提高生产收率</div>
                <div class="benefit-desc">通过预测模型指导生产参数优化，可将异烟酸收率提高2-5%</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">💰</div>
                <div class="benefit-title">降低生产成本</div>
                <div class="benefit-desc">优化物料配比和生产工艺，每吨产品可节约成本约800-1200元</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">♻️</div>
                <div class="benefit-title">绿色生产</div>
                <div class="benefit-desc">减少能源消耗和废弃物排放，符合环保要求</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">🔍</div>
                <div class="benefit-title">提高质量稳定性</div>
                <div class="benefit-desc">产品质量一致性提升15%，降低批次间差异</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">📊</div>
                <div class="benefit-title">数据驱动决策</div>
                <div class="benefit-desc">为企业管理层提供数据支持，辅助智能化决策</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">🚀</div>
                <div class="benefit-title">技术创新</div>
                <div class="benefit-desc">推动传统化工行业数字化转型和智能制造升级</div>
            </div>
        </div>
        
        <h2 id="section-2">2. 数据分析与理解</h2>
        <p>本项目使用的数据集包含了异烟酸生产过程中的工艺参数和最终收率数据，通过深入分析这些数据，我们可以更好地理解生产过程的特点和规律。</p>
        
        <h3>2.1 数据集构成</h3>
        <ul>
            <li><strong>训练集</strong>：1396个样本，包含43个特征变量和收率标签</li>
            <li><strong>测试集A</strong>：150个样本，用于模型评估和调优</li>
            <li><strong>测试集B</strong>：150个样本，用于最终模型验证和性能评估</li>
        </ul>
        
        <!-- 扩展数据集构成描述 -->
        <div class="dataset-desc" style="margin-bottom: 16px;">
            <p>本项目的数据集分为三部分：训练集、测试集A和测试集B。训练集包含1396个样本，每个样本拥有43个特征变量和1个收率标签，主要用于模型的训练和参数学习。测试集A和测试集B各包含150个样本，分别用于模型的评估调优和最终性能验证。虽然数据集规模在机器学习领域不算庞大，但对于工业生产数据而言，这样的样本量已具备较强代表性，能够较好地反映异烟酸生产过程的工艺特性和规律。数据集覆盖了原料、工艺参数、设备状态等多维度信息，有助于模型深入挖掘影响收率的关键因素，为生产优化提供科学依据。</p>
        </div>
        <!-- 数据集分布饼图 -->
        <div id="dataset-pie-chart" style="width: 400px; height: 320px; margin: 0 auto 16px auto;"></div>
        <script>
        // 侧边栏伸缩功能
        document.addEventListener('DOMContentLoaded', function() {
            var sidebar = document.getElementById('sidebar');
            var sidebarToggle = document.getElementById('sidebarToggle');
            var mainContent = document.getElementById('mainContent');
            sidebarToggle.addEventListener('click', function() {
                sidebar.classList.toggle('collapsed');
                mainContent.classList.toggle('sidebar-collapsed');
                // 切换图标方向
                var icon = sidebarToggle.querySelector('i');
                if (sidebar.classList.contains('collapsed')) {
                    icon.classList.remove('fa-chevron-left');
                    icon.classList.add('fa-chevron-right');
                } else {
                    icon.classList.remove('fa-chevron-right');
                    icon.classList.add('fa-chevron-left');
                }
            });
        });
        // ECharts 饼图
        var chartDom = document.getElementById('dataset-pie-chart');
        if (chartDom && window.echarts) {
            var myChart = echarts.init(chartDom);
            var option = {
                title: {
                    text: '数据集样本数量分布',
                    left: 'center',
                    top: 10,
                    textStyle: { fontSize: 18 }
                },
                tooltip: {
                    trigger: 'item',
                    formatter: '{b}: {c} ({d}%)'
                },
                legend: {
                    orient: 'horizontal',
                    bottom: 0,
                    data: ['训练集', '测试集A', '测试集B']
                },
                series: [
                    {
                        name: '样本数量',
                        type: 'pie',
                        radius: ['40%', '70%'],
                        avoidLabelOverlap: false,
                        label: {
                            show: true,
                            position: 'outside',
                            formatter: '{b}\n{c} ({d}%)'
                        },
                        labelLine: {
                            show: true
                        },
                        data: [
                            { value: 1396, name: '训练集' },
                            { value: 150, name: '测试集A' },
                            { value: 150, name: '测试集B' }
                        ]
                    }
                ]
            };
            myChart.setOption(option);
        }
        </script>
        
        <h3>2.2 特征变量分析</h3>
        <p>数据包含了生产过程中10个关键步骤的各项参数，具体包括：</p>
        <ul>
            <li><strong>A1-A28</strong>：第一生产阶段的参数
                <ul>
                    <li>A1：4-氰基吡啶用量（kg）</li>
                    <li>A3：氢氧化钠用量（kg）</li>
                    <li>A4, A19：水用量（kg）</li>
                    <li>A5, A9, A11等：关键时间点</li>
                    <li>A20, A28：时间段参数</li>
                    <li>A22, A23：pH值参数</li>
                    <li>其他工艺控制参数</li>
                </ul>
            </li>
            <li><strong>B1-B14</strong>：第二生产阶段的参数
                <ul>
                    <li>B1：盐酸用量（kg）</li>
                    <li>B4, B9, B10, B11：时间段参数</li>
                    <li>B6：温度参数（℃）</li>
                    <li>B12：水用量（kg）</li>
                    <li>B14：理论产出量（kg）</li>
                    <li>其他工艺控制参数</li>
                </ul>
            </li>
            <li><strong>收率</strong>：异烟酸的最终收率（预测目标），范围主要在0.85-0.98之间</li>
        </ul>
        
        <h3>2.3 数据特点与挑战</h3>
        <p>通过对数据集的初步分析，我们发现数据具有以下特点和挑战：</p>
        <ul>
            <li><strong>多样性特征</strong>：包含数值型（如温度、压力）、类别型和时间型（如反应时间）特征</li>
            <li><strong>缺失值问题</strong>：部分参数存在缺失，如A2只有42个非空值，A7只有149个非空值</li>
            <li><strong>异常值存在</strong>：存在少量记录错误或格式不一致的数据，如A1=200的异常值</li>
            <li><strong>时间格式多样</strong>：时间记录格式不统一，如"14:00:00"、"1900/1/21 0:00"等</li>
            <li><strong>特征间复杂关联</strong>：工艺参数之间存在复杂的非线性关系</li>
            <li><strong>数据分布不均</strong>：部分参数分布不均衡，可能影响模型训练效果</li>
        </ul>
        
        <div class="chart">
            <table>
                <tr>
                    <th>特征类型</th>
                    <th>数量</th>
                    <th>缺失率</th>
                    <th>示例</th>
                </tr>
                <tr>
                    <td>数值型特征</td>
                    <td>26个</td>
                    <td>0-97%</td>
                    <td>A1, A3, A4, A6, B1, B12等</td>
                </tr>
                <tr>
                    <td>时间型特征</td>
                    <td>10个</td>
                    <td>0-89%</td>
                    <td>A5, A7, A9, A11, A14, A16, A24, A26, B5, B7</td>
                </tr>
                <tr>
                    <td>时间段特征</td>
                    <td>6个</td>
                    <td>0-61%</td>
                    <td>A20, A28, B4, B9, B10, B11</td>
                </tr>
                <tr>
                    <td>目标变量</td>
                    <td>1个</td>
                    <td>0%</td>
                    <td>收率</td>
                </tr>
            </table>
            <p style="text-align: center;"><em>表1：数据特征分布情况</em></p>
        </div>
        
        <h3>2.4 数据分布分析</h3>
        <p>对目标变量"收率"的分布分析显示，收率主要集中在0.85-0.98之间，呈现近似正态分布的特点，这为回归模型的建立提供了良好基础。通过对主要特征的分析，我们发现：</p>
        <ul>
            <li>原料用量（A1, A3）相对稳定，但与收率有一定相关性</li>
            <li>时间参数（如反应时间、间隔时间）与收率的相关性较高</li>
            <li>pH值参数（A22, A23）对收率有显著影响</li>
            <li>水用量参数（A4, A19, B12）的配比对收率有复杂影响</li>
        </ul>
        
        <h2 id="section-3">3. 数据预处理与特征工程</h2>
        
        <div class="visualization">
            <div class="visualization-title">数据处理流程</div>
            <div class="data-flow-description">
                <div class="process-flow">
                    <div class="flow-step">
                        <div class="flow-step-number">1</div>
                        <div class="flow-step-content">
                            <h4>数据加载与检查</h4>
                            <p>加载原始数据，检查数据结构、类型和基本统计特性</p>
                        </div>
                        <div class="flow-arrow">↓</div>
                    </div>
                    <div class="flow-step">
                        <div class="flow-step-number">2</div>
                        <div class="flow-step-content">
                            <h4>异常值检测与修正</h4>
                            <p>识别并处理明显的错误值和极端值</p>
                        </div>
                        <div class="flow-arrow">↓</div>
                    </div>
                    <div class="flow-step">
                        <div class="flow-step-number">3</div>
                        <div class="flow-step-content">
                            <h4>缺失值处理</h4>
                            <p>根据特征类型采用不同策略填充缺失值</p>
                        </div>
                        <div class="flow-arrow">↓</div>
                    </div>
                    <div class="flow-step">
                        <div class="flow-step-number">4</div>
                        <div class="flow-step-content">
                            <h4>格式标准化</h4>
                            <p>统一时间格式，规范化数值单位</p>
                        </div>
                        <div class="flow-arrow">↓</div>
                    </div>
                    <div class="flow-step">
                        <div class="flow-step-number">5</div>
                        <div class="flow-step-content">
                            <h4>特征工程</h4>
                            <p>构建时间特征、物料特征和比例特征</p>
                        </div>
                        <div class="flow-arrow">↓</div>
                    </div>
                    <div class="flow-step">
                        <div class="flow-step-number">6</div>
                        <div class="flow-step-content">
                            <h4>特征选择</h4>
                            <p>通过相关性分析和重要性评估筛选特征</p>
                        </div>
                        <div class="flow-arrow">↓</div>
                    </div>
                    <div class="flow-step">
                        <div class="flow-step-number">7</div>
                        <div class="flow-step-content">
                            <h4>数据分割</h4>
                            <p>将处理后的数据集分为训练集和验证集</p>
                        </div>
                    </div>
                </div>
            </div>
            <p style="text-align: center;"><em>图2：异烟酸收率预测数据处理流程</em></p>
        </div>
        
        <h3>3.1 数据清洗</h3>
        <p>原始数据集中存在一些质量问题，包括缺失值、异常值和不一致的数据格式。我们采取了以下步骤进行数据清洗：</p>
        
        <div class="process-steps">
            <div class="process-step">
                <div class="step-number">1</div>
                <div class="step-content">
                    <h4>缺失值处理</h4>
                    <p>根据特征的性质采用不同策略：</p>
                    <ul>
                        <li>连续型特征：均值/中位数填充</li>
                        <li>时间序列数据：前向/后向填充</li>
                        <li>分类特征：众数填充</li>
                    </ul>
                    <div class="step-stats">填充缺失值：约5.2%的数据点</div>
                </div>
            </div>
            <div class="process-step">
                <div class="step-number">2</div>
                <div class="step-content">
                    <h4>异常值检测与处理</h4>
                    <p>使用多种方法识别并处理异常值：</p>
                    <ul>
                        <li>统计方法：IQR法则、Z-score</li>
                        <li>领域知识：工艺参数范围限制</li>
                        <li>可视化检测：箱线图、散点图分析</li>
                    </ul>
                    <div class="step-stats">处理异常值：约3.8%的数据点</div>
                </div>
            </div>
            <div class="process-step">
                <div class="step-number">3</div>
                <div class="step-content">
                    <h4>数据格式统一</h4>
                    <p>规范化数据格式，确保一致性：</p>
                    <ul>
                        <li>时间格式标准化</li>
                        <li>单位换算统一</li>
                        <li>字段名称规范化</li>
                    </ul>
                    <div class="step-stats">标准化处理：100%数据集</div>
                </div>
            </div>
        </div>
        
        <h3 id="section-3-2">3.2 特征工程</h3>
        <p>为提升模型性能，我们对原始数据进行了多维度的特征工程处理，充分挖掘数据潜力：</p>
        <div class="benefits-grid">
            <div class="benefit-card">
                <div class="benefit-icon">⏱️</div>
                <div class="benefit-title">时间特征</div>
                <div class="benefit-desc">将关键工艺时间点（如A5、A7、A9等）统一转换为分钟，计算各阶段间隔与持续时间，提取平均、标准差等统计量，反映工艺节奏。</div>
        </div>
            <div class="benefit-card">
                <div class="benefit-icon">💧</div>
                <div class="benefit-title">物料特征</div>
                <div class="benefit-desc">统计各阶段水、原料、盐酸等用量，构建总量、阶段量、理论产出等特征，反映物料消耗与工艺配比。</div>
        </div>
            <div class="benefit-card">
                <div class="benefit-icon">📊</div>
                <div class="benefit-title">比例特征</div>
                <div class="benefit-desc">计算水与氢氧化钠、4-氰基吡啶与氢氧化钠等关键物料比例，挖掘配比对收率的影响。</div>
        </div>
            <div class="benefit-card">
                <div class="benefit-icon">⚗️</div>
                <div class="benefit-title">产出比特征</div>
                <div class="benefit-desc">如理论产出与原料用量、氢氧化钠用量的比值，反映工艺效率。</div>
                    </div>
            <div class="benefit-card">
                <div class="benefit-icon">📈</div>
                <div class="benefit-title">统计特征</div>
                <div class="benefit-desc">对时间、物料等特征计算均值、方差、极值等统计量，增强模型对异常和趋势的感知能力。</div>
            </div>
        </div>
        
        <!-- 特征工程定义与通俗解释 -->
        <div class="feature-engineering-definition" style="margin: 20px 0; padding: 16px; background: #f8fafd; border-left: 4px solid #4F81BD;">
            <strong>【特征工程的定义】</strong><br>
            特征工程是机器学习中对原始数据进行处理、转换和构造，以获得更适合模型学习的特征变量的过程。它包括特征的选择、提取、构造、变换等环节，目的是提升模型的预测能力和泛化能力。
            <br><br>
            <strong>【通俗解释】</strong><br>
            简单来说，特征工程就像是"给模型准备食材"。原始数据就像一堆未经处理的原材料，特征工程就是把这些原材料进行清洗、切割、组合，变成模型更容易"消化吸收"的营养餐。做得好，模型就能更快更准地学会规律，预测效果也会更好。
        </div>
        
        <!-- 时间特征可视化 -->
        <div class="visualization">
            <div class="visualization-title">时间特征工程示意</div>
            <svg width="100%" height="120" viewBox="0 0 800 120" style="max-width:800px; display:block; margin:0 auto;">
                <rect x="60" y="60" width="120" height="20" fill="#eaf6ff" stroke="#3498db" rx="8"/>
                <text x="120" y="75" font-size="16" fill="#3498db" font-weight="bold" text-anchor="middle">A5</text>
                <rect x="200" y="60" width="120" height="20" fill="#eaf6ff" stroke="#3498db" rx="8"/>
                <text x="260" y="75" font-size="16" fill="#3498db" font-weight="bold" text-anchor="middle">A9</text>
                <rect x="340" y="60" width="120" height="20" fill="#eaf6ff" stroke="#3498db" rx="8"/>
                <text x="400" y="75" font-size="16" fill="#3498db" font-weight="bold" text-anchor="middle">A11</text>
                <rect x="480" y="60" width="120" height="20" fill="#eaf6ff" stroke="#3498db" rx="8"/>
                <text x="540" y="75" font-size="16" fill="#3498db" font-weight="bold" text-anchor="middle">A16</text>
                <line x1="180" y1="70" x2="200" y2="70" stroke="#2ecc71" stroke-width="4" marker-end="url(#arrowhead)"/>
                <line x1="320" y1="70" x2="340" y2="70" stroke="#2ecc71" stroke-width="4" marker-end="url(#arrowhead)"/>
                <line x1="460" y1="70" x2="480" y2="70" stroke="#2ecc71" stroke-width="4" marker-end="url(#arrowhead)"/>
                <defs>
                    <marker id="arrowhead" markerWidth="10" markerHeight="7" refX="0" refY="3.5" orient="auto">
                        <polygon points="0 0, 10 3.5, 0 7" fill="#2ecc71" />
                    </marker>
                </defs>
                <text x="190" y="55" font-size="14" fill="#2ecc71" text-anchor="middle">A9-A5</text>
                <text x="330" y="55" font-size="14" fill="#2ecc71" text-anchor="middle">A11-A9</text>
                <text x="470" y="55" font-size="14" fill="#2ecc71" text-anchor="middle">A16-A11</text>
            </svg>
            <p style="text-align:center; color:#888;">图：关键工艺时间点与间隔特征工程</p>
        </div>
        
        <!-- 物料特征可视化 -->
        <div class="visualization">
            <div class="visualization-title">物料特征工程示意</div>
            <svg width="100%" height="120" viewBox="0 0 800 120" style="max-width:800px; display:block; margin:0 auto;">
                <rect x="100" y="60" width="120" height="20" fill="#f6fff2" stroke="#2ecc71" rx="8"/>
                <text x="160" y="75" font-size="16" fill="#27ae60" font-weight="bold" text-anchor="middle">A1</text>
                <rect x="260" y="60" width="120" height="20" fill="#f6fff2" stroke="#2ecc71" rx="8"/>
                <text x="320" y="75" font-size="16" fill="#27ae60" font-weight="bold" text-anchor="middle">A3</text>
                <rect x="420" y="60" width="120" height="20" fill="#f6fff2" stroke="#2ecc71" rx="8"/>
                <text x="480" y="75" font-size="16" fill="#27ae60" font-weight="bold" text-anchor="middle">A4</text>
                <rect x="580" y="60" width="120" height="20" fill="#f6fff2" stroke="#2ecc71" rx="8"/>
                <text x="640" y="75" font-size="16" fill="#27ae60" font-weight="bold" text-anchor="middle">B12</text>
                <line x1="220" y1="70" x2="260" y2="70" stroke="#27ae60" stroke-width="4" marker-end="url(#arrowhead2)"/>
                <line x1="380" y1="70" x2="420" y2="70" stroke="#27ae60" stroke-width="4" marker-end="url(#arrowhead2)"/>
                <line x1="540" y1="70" x2="580" y2="70" stroke="#27ae60" stroke-width="4" marker-end="url(#arrowhead2)"/>
                <defs>
                    <marker id="arrowhead2" markerWidth="10" markerHeight="7" refX="0" refY="3.5" orient="auto">
                        <polygon points="0 0, 10 3.5, 0 7" fill="#27ae60" />
                    </marker>
                </defs>
                <text x="240" y="55" font-size="14" fill="#27ae60" text-anchor="middle">A3-A1</text>
                <text x="400" y="55" font-size="14" fill="#27ae60" text-anchor="middle">A4-A3</text>
                <text x="560" y="55" font-size="14" fill="#27ae60" text-anchor="middle">B12-A4</text>
            </svg>
            <p style="text-align:center; color:#888;">图：关键物料用量与阶段特征工程</p>
        </div>
        
        <h3>3.3 特征选择 <span style="font-size:1.2em;vertical-align:middle;">🔎</span></h3>
        <p>特征选择是提升模型性能和泛化能力的关键步骤。本项目采用了多种方法对特征进行筛选和优化：</p>
        <ul>
            <li><strong>相关性分析</strong>：计算每个特征与收率的皮尔逊相关系数，筛选出与目标变量高度相关的特征。</li>
            <li><strong>特征重要性评估</strong>：利用XGBoost等模型的特征重要性排序，保留对模型预测贡献最大的特征。</li>
            <li><strong>冗余特征剔除</strong>：去除高度相关或重复的信息特征，减少多重共线性。</li>
            <li><strong>领域知识辅助</strong>：结合工艺专家经验，保留关键工艺参数和物料配比等核心特征。</li>
            <li><strong>异常值处理</strong>：对特征中的异常值进行修正或剔除，提升数据质量。</li>
        </ul>
        <div class="visualization">
            <div class="visualization-title">特征选择流程</div>
            <svg width="100%" height="120" viewBox="0 0 800 120" style="max-width:800px; display:block; margin:0 auto;">
                <rect x="40" y="40" width="120" height="40" fill="#eaf6ff" stroke="#3498db" rx="8"/>
                <text x="100" y="65" font-size="16" fill="#3498db" font-weight="bold" text-anchor="middle">原始特征</text>
                <line x1="160" y1="60" x2="200" y2="60" stroke="#2ecc71" stroke-width="4" marker-end="url(#arrowhead3)"/>
                <rect x="200" y="40" width="140" height="40" fill="#f6fff2" stroke="#2ecc71" rx="8"/>
                <text x="270" y="65" font-size="16" fill="#27ae60" font-weight="bold" text-anchor="middle">相关性分析</text>
                <line x1="340" y1="60" x2="380" y2="60" stroke="#f1c40f" stroke-width="4" marker-end="url(#arrowhead3)"/>
                <rect x="380" y="40" width="140" height="40" fill="#fffbe6" stroke="#f1c40f" rx="8"/>
                <text x="450" y="65" font-size="16" fill="#f1c40f" font-weight="bold" text-anchor="middle">特征重要性</text>
                <line x1="520" y1="60" x2="560" y2="60" stroke="#e67e22" stroke-width="4" marker-end="url(#arrowhead3)"/>
                <rect x="560" y="40" width="140" height="40" fill="#fff0e6" stroke="#e67e22" rx="8"/>
                <text x="630" y="65" font-size="16" fill="#e67e22" font-weight="bold" text-anchor="middle">冗余剔除</text>
                <defs>
                    <marker id="arrowhead3" markerWidth="10" markerHeight="7" refX="0" refY="3.5" orient="auto">
                        <polygon points="0 0, 10 3.5, 0 7" fill="#2ecc71" />
                    </marker>
                </defs>
            </svg>
            <p style="text-align:center; color:#888;">图：特征选择主要流程</p>
        </div>
        <table style="width:100%;margin:16px 0;text-align:center;">
            <tr style="background:#f8f8f8;font-weight:bold;">
                <td>特征类型</td><td>示例特征</td><td>选择依据</td>
                </tr>
            <tr><td>时间特征</td><td>P2_T3_T0_K_D, P5__D_mean</td><td>与收率相关性高</td></tr>
            <tr><td>温度特征</td><td>P2_S1_A12_3C, P2_C3_C0_D</td><td>工艺关键点</td></tr>
            <tr><td>物料特征</td><td>P2_W_1M, P2_N_1M, P2_C_1M</td><td>原料/辅料核心参数</td></tr>
            <tr><td>比例特征</td><td>P2_W_1M_P2_N_1M_R</td><td>配比对收率影响大</td></tr>
            <tr><td>统计特征</td><td>P5__D_std, P2_C1-C12_D_sum</td><td>反映波动与趋势</td></tr>
            </table>
        <p style="color:#888;font-size:0.95em;">最终通过特征合并，保留了约140个高价值特征，显著提升了模型预测能力。</p>

        <h3>3.4 数据分割 <span style="font-size:1.2em;vertical-align:middle;">🧩</span></h3>
        <p>为科学评估模型性能，项目采用了两种数据分割策略：</p>
        <ul>
            <li><strong>训练集/验证集划分</strong>：将处理后的数据集按8:2比例分为训练集和验证集，保证模型评估的客观性。</li>
            <li><strong>K折交叉验证</strong>：采用5折交叉验证（KFold），每次用80%数据训练，20%验证，循环5次，提升模型稳定性和泛化能力。</li>
            <li><strong>异常样本剔除</strong>：对收率异常（如低于0.8671或高于0.9861）的样本进行剔除，保证训练数据质量。</li>
        </ul>
        <div class="visualization">
            <div class="visualization-title">数据分割与交叉验证流程</div>
            <svg width="100%" height="120" viewBox="0 0 800 120" style="max-width:800px; display:block; margin:0 auto;">
                <rect x="60" y="40" width="120" height="40" fill="#eaf6ff" stroke="#3498db" rx="8"/>
                <text x="120" y="65" font-size="16" fill="#3498db" font-weight="bold" text-anchor="middle">全部样本</text>
                <line x1="180" y1="60" x2="220" y2="60" stroke="#2ecc71" stroke-width="4" marker-end="url(#arrowhead4)"/>
                <rect x="220" y="20" width="120" height="40" fill="#f6fff2" stroke="#2ecc71" rx="8"/>
                <text x="280" y="45" font-size="16" fill="#27ae60" font-weight="bold" text-anchor="middle">训练集 80%</text>
                <rect x="220" y="80" width="120" height="40" fill="#fffbe6" stroke="#f1c40f" rx="8"/>
                <text x="280" y="105" font-size="16" fill="#f1c40f" font-weight="bold" text-anchor="middle">验证集 20%</text>
                <line x1="340" y1="40" x2="380" y2="40" stroke="#e67e22" stroke-width="4" marker-end="url(#arrowhead4)"/>
                <rect x="380" y="20" width="120" height="40" fill="#fff0e6" stroke="#e67e22" rx="8"/>
                <text x="440" y="45" font-size="16" fill="#e67e22" font-weight="bold" text-anchor="middle">K折交叉验证</text>
                <defs>
                    <marker id="arrowhead4" markerWidth="10" markerHeight="7" refX="0" refY="3.5" orient="auto">
                        <polygon points="0 0, 10 3.5, 0 7" fill="#2ecc71" />
                    </marker>
                </defs>
            </svg>
            <p style="text-align:center; color:#888;">图：数据分割与交叉验证流程</p>
        </div>
        <table style="width:100%;margin:16px 0;text-align:center;">
            <tr style="background:#f8f8f8;font-weight:bold;">
                <td>步骤</td><td>操作说明</td><td>目的</td>
            </tr>
            <tr><td>异常值剔除</td><td>去除收率异常样本</td><td>提升数据质量</td></tr>
            <tr><td>训练/验证划分</td><td>8:2分割</td><td>模型初步评估</td></tr>
            <tr><td>K折交叉验证</td><td>5折循环训练</td><td>提升泛化能力</td></tr>
        </table>
        <p style="color:#888;font-size:0.95em;">通过科学分割与交叉验证，确保模型评估结果真实可靠，避免过拟合。</p>
        
        <h2 id="section-4">4. 模型构建</h2>
        <p>在完成特征工程后，我们进入了模型构建阶段，这是异烟酸收率预测系统的核心环节。通过分析多种算法的性能和特点，我们选择了最适合该预测任务的模型，并进行了精细调优。</p>

        <h3 id="section-4-1">4.1 模型选择</h3>
        <p>经过对多种机器学习算法的比较分析，我们选择了XGBoost（极端梯度提升）作为主要建模算法，主要基于以下优势：</p>
        
        <div class="model-comparison">
            <table>
                <tr>
                    <th>模型</th>
                    <th>MSE</th>
                    <th>RMSE</th>
                    <th>R²</th>
                    <th>训练时间</th>
                    <th>优势</th>
                    <th>劣势</th>
                </tr>
                <tr class="best-model">
                    <td>XGBoost</td>
                    <td>0.000129</td>
                    <td>0.01136</td>
                    <td>0.872</td>
                    <td>中等</td>
                    <td>高精度、处理缺失值、防过拟合</td>
                    <td>参数较多</td>
                </tr>
                <tr>
                    <td>随机森林</td>
                    <td>0.000158</td>
                    <td>0.01257</td>
                    <td>0.845</td>
                    <td>较长</td>
                    <td>稳定性好、易于理解</td>
                    <td>精度略低</td>
                </tr>
                <tr>
                    <td>神经网络</td>
                    <td>0.000175</td>
                    <td>0.01323</td>
                    <td>0.831</td>
                    <td>最长</td>
                    <td>捕捉复杂非线性关系</td>
                    <td>需大量数据、解释性差</td>
                </tr>
                <tr>
                    <td>线性回归</td>
                    <td>0.000312</td>
                    <td>0.01766</td>
                    <td>0.762</td>
                    <td>最短</td>
                    <td>简单、计算快</td>
                    <td>无法捕捉非线性关系</td>
                </tr>
            </table>
        </div>
        
        <p>选择XGBoost的主要原因包括：</p>
        <ul>
            <li><strong>性能优越</strong>：在我们的交叉验证测试中，XGBoost在MSE、RMSE和R²等指标上均表现最佳</li>
            <li><strong>特征处理能力</strong>：能够自动处理各种类型的特征，包括缺失值</li>
            <li><strong>可解释性</strong>：提供特征重要性分析，帮助理解模型决策过程</li>
            <li><strong>计算效率</strong>：采用并行计算，训练速度快</li>
            <li><strong>内置正则化</strong>：通过L1和L2正则化有效防止过拟合</li>
        </ul>

        <div class="visualization">
            <div class="visualization-title">模型性能对比</div>
            <div style="width:100%; height:300px;">
                <svg width="100%" height="100%" viewBox="0 0 600 300" xmlns="http://www.w3.org/2000/svg">
                    <!-- 坐标轴 -->
                    <line x1="50" y1="250" x2="550" y2="250" stroke="#333" stroke-width="2" />
                    <line x1="50" y1="50" x2="50" y2="250" stroke="#333" stroke-width="2" />
                    
                    <!-- X轴标签 -->
                    <text x="125" y="270" text-anchor="middle" font-family="Arial" font-size="12">XGBoost</text>
                    <text x="225" y="270" text-anchor="middle" font-family="Arial" font-size="12">随机森林</text>
                    <text x="325" y="270" text-anchor="middle" font-family="Arial" font-size="12">神经网络</text>
                    <text x="425" y="270" text-anchor="middle" font-family="Arial" font-size="12">线性回归</text>
                    
                    <!-- Y轴标签 -->
                    <text x="30" y="250" text-anchor="end" font-family="Arial" font-size="10">0</text>
                    <text x="30" y="200" text-anchor="end" font-family="Arial" font-size="10">0.2</text>
                    <text x="30" y="150" text-anchor="end" font-family="Arial" font-size="10">0.4</text>
                    <text x="30" y="100" text-anchor="end" font-family="Arial" font-size="10">0.6</text>
                    <text x="30" y="50" text-anchor="end" font-family="Arial" font-size="10">0.8</text>
                    
                    <!-- 轴标题 -->
                    <text x="300" y="290" text-anchor="middle" font-family="Arial" font-size="14">模型类型</text>
                    <text x="15" y="150" text-anchor="middle" font-family="Arial" font-size="14" transform="rotate(-90, 15, 150)">性能指标</text>
                    
                    <!-- 数据条 - R² -->
                    <rect x="100" y="78" width="50" height="172" fill="#3498db" opacity="0.8" />
                    <rect x="200" y="95" width="50" height="155" fill="#3498db" opacity="0.8" />
                    <rect x="300" y="107" width="50" height="143" fill="#3498db" opacity="0.8" />
                    <rect x="400" y="149" width="50" height="101" fill="#3498db" opacity="0.8" />
                    
                    <!-- 数据标签 -->
                    <text x="125" y="73" text-anchor="middle" font-family="Arial" font-size="12" font-weight="bold">0.872</text>
                    <text x="225" y="90" text-anchor="middle" font-family="Arial" font-size="12" font-weight="bold">0.845</text>
                    <text x="325" y="102" text-anchor="middle" font-family="Arial" font-size="12" font-weight="bold">0.831</text>
                    <text x="425" y="144" text-anchor="middle" font-family="Arial" font-size="12" font-weight="bold">0.762</text>
                    
                    <!-- 图例 -->
                    <rect x="450" y="30" width="15" height="15" fill="#3498db" opacity="0.8" />
                    <text x="470" y="43" font-family="Arial" font-size="12">R² 值</text>
                </svg>
            </div>
            <p style="text-align: center;"><em>图3：不同模型的R²性能对比</em></p>
        </div>

        <h3 id="section-4-2">4.2 模型训练策略</h3>
        <div class="training-strategy-explanation" style="background-color: #f8fafd; padding: 16px; margin-bottom: 16px; border-left: 4px solid #3498db;">
            <h4>🎯 训练策略：像教练训练运动员一样</h4>
            <p>我们的模型训练策略就像是一个优秀教练培养运动员的过程：</p>
            
            <div class="strategy-steps">
                <div class="step">
                    <div class="step-icon">1️⃣</div>
                    <div class="step-content">
                        <strong>分组训练（5折交叉验证）</strong>
                        <p>将全部数据分成5个"训练小组"，每次选择4个小组训练，1个小组验证，就像教练让运动员轮流担任主力和替补，确保每个队员都得到充分锻炼。</p>
                    </div>
                </div>
                
                <div class="step">
                    <div class="step-icon">2️⃣</div>
                    <div class="step-content">
                        <strong>循环训练</strong>
                        <p>5个小组每个都要当一次"验证组"，这样可以全面评估模型的实力，避免因为某个特定分组导致的偏差，就像教练会让每个运动员都经历不同的训练强度和环境。</p>
                    </div>
                </div>
                
                <div class="step">
                    <div class="step-icon">3️⃣</div>
                    <div class="step-content">
                        <strong>早停机制</strong>
                        <p>设置"疲劳度监控"，当模型在验证集上的表现连续多轮没有提升时，就停止训练。这就像教练会根据运动员的身体状态调整训练强度，防止过度训练。</p>
                    </div>
                </div>
                
                <div class="step">
                    <div class="step-icon">4️⃣</div>
                    <div class="step-content">
                        <strong>结果综合</strong>
                        <p>将5个小组训练的结果取平均，得到最终模型。这类似于教练综合评估运动员的全面表现，而不是只看某一次比赛的成绩。</p>
            </div>
                </div>
            </div>
        </div>

        <!-- 交叉验证流程图 -->
        <div class="visualization">
            <div class="visualization-title">5折交叉验证训练策略示意</div>
            <svg width="100%" height="300" viewBox="0 0 800 300" xmlns="http://www.w3.org/2000/svg">
                <defs>
                    <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
                        <stop offset="0%" style="stop-color:#3498db;stop-opacity:0.8" />
                        <stop offset="100%" style="stop-color:#2ecc71;stop-opacity:0.8" />
                    </linearGradient>
                </defs>
                
                <text x="400" y="40" text-anchor="middle" font-size="20" font-weight="bold">5折交叉验证训练流程</text>
                
                <!-- 第一折 -->
                <rect x="100" y="100" width="600" height="40" fill="url(#grad1)" rx="8"/>
                <text x="400" y="125" text-anchor="middle" fill="white" font-size="16">第1折：第1组作为验证集，其他4组作为训练集</text>
                
                <!-- 第二折 -->
                <rect x="100" y="160" width="600" height="40" fill="url(#grad1)" rx="8"/>
                <text x="400" y="185" text-anchor="middle" fill="white" font-size="16">第2折：第2组作为验证集，其他4组作为训练集</text>
                
                <!-- 第三折 -->
                <rect x="100" y="220" width="600" height="40" fill="url(#grad1)" rx="8"/>
                <text x="400" y="245" text-anchor="middle" fill="white" font-size="16">第3折：第3组作为验证集，其他4组作为训练集</text>
                
                <!-- 箭头 -->
                <marker id="arrowhead" markerWidth="10" markerHeight="7" refX="0" refY="3.5" orient="auto">
                    <polygon points="0 0, 10 3.5, 0 7" fill="#34495e" />
                </marker>
                <path d="M400,260 L400,280" stroke="#34495e" stroke-width="2" marker-end="url(#arrowhead)"/>
                
                <text x="400" y="295" text-anchor="middle" font-size="14" fill="#7f8c8d">最终模型取5折平均结果</text>
            </svg>
        </div>

        <h3 id="section-4-3">4.3 模型参数</h3>
        <div class="model-parameters" style="margin-bottom: 20px;">
            <div class="visualization">
                <div class="visualization-title">XGBoost模型关键参数</div>
                <table style="width:100%; border-collapse: collapse;">
                    <thead style="background-color: #f8f8f8;">
                        <tr>
                            <th style="padding: 10px; border: 1px solid #ddd;">参数名称</th>
                            <th style="padding: 10px; border: 1px solid #ddd;">参数值</th>
                            <th style="padding: 10px; border: 1px solid #ddd;">参数解释</th>
                            <th style="padding: 10px; border: 1px solid #ddd;">调优建议</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td style="padding: 10px; border: 1px solid #ddd;">学习率(eta)</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">0.01</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">控制每棵树的权重</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">较小值，防止过拟合</td>
                        </tr>
                        <tr>
                            <td style="padding: 10px; border: 1px solid #ddd;">最大树深度(max_depth)</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">7</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">控制树的复杂度</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">避免过深导致过拟合</td>
                        </tr>
                        <tr>
                            <td style="padding: 10px; border: 1px solid #ddd;">特征采样比例(colsample_bytree)</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">0.8</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">每棵树随机选择特征比例</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">防止过度依赖单一特征</td>
                        </tr>
                        <tr>
                            <td style="padding: 10px; border: 1px solid #ddd;">样本采样比例(subsample)</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">0.8</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">每棵树随机选择样本比例</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">提高模型泛化能力</td>
                        </tr>
                        <tr>
                            <td style="padding: 10px; border: 1px solid #ddd;">目标函数(objective)</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">reg:linear</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">线性回归目标</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">适合连续值预测</td>
                        </tr>
                        <tr>
                            <td style="padding: 10px; border: 1px solid #ddd;">最大迭代次数</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">10800轮</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">模型训练总轮数</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">通过早停机制实际控制</td>
                        </tr>
                        <tr>
                            <td style="padding: 10px; border: 1px solid #ddd;">早停轮数</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">360轮</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">连续多少轮无改善则停止</td>
                            <td style="padding: 10px; border: 1px solid #ddd;">防止过拟合</td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
        <div class="parameter-explanation" style="background-color: #f8fafd; padding: 16px; margin-bottom: 16px; border-left: 4px solid #3498db;">
            <h4>🔧 参数调优小贴士</h4>
            <p>模型参数就像乐器调音，需要精细且耐心的调试：</p>
            <ul>
                <li>学习率越小，模型学习越慢但更稳定</li>
                <li>树深度控制模型复杂度，过深易过拟合</li>
                <li>特征和样本采样可以提高模型泛化能力</li>
                <li>早停机制是防止过度训练的关键</li>
        </ul>
        </div>

        <p>在训练过程中，我们监控了损失函数的变化，以防止模型过拟合。下图展示了训练过程中的损失变化：</p>

        <div class="visualization">
            <div class="visualization-title">模型训练损失曲线</div>
            <div style="width:100%; height:300px;">
                <svg width="100%" height="100%" viewBox="0 0 600 300" xmlns="http://www.w3.org/2000/svg">
                    <!-- 坐标轴 -->
                    <line x1="50" y1="250" x2="550" y2="250" stroke="#333" stroke-width="2" />
                    <line x1="50" y1="50" x2="50" y2="250" stroke="#333" stroke-width="2" />
                    
                    <!-- X轴标签 -->
                    <text x="50" y="270" text-anchor="middle" font-family="Arial" font-size="10">0</text>
                    <text x="150" y="270" text-anchor="middle" font-family="Arial" font-size="10">2000</text>
                    <text x="250" y="270" text-anchor="middle" font-family="Arial" font-size="10">4000</text>
                    <text x="350" y="270" text-anchor="middle" font-family="Arial" font-size="10">6000</text>
                    <text x="450" y="270" text-anchor="middle" font-family="Arial" font-size="10">8000</text>
                    <text x="550" y="270" text-anchor="middle" font-family="Arial" font-size="10">10000</text>
                    
                    <!-- Y轴标签 -->
                    <text x="40" y="250" text-anchor="end" font-family="Arial" font-size="10">0.0005</text>
                    <text x="40" y="200" text-anchor="end" font-family="Arial" font-size="10">0.0004</text>
                    <text x="40" y="150" text-anchor="end" font-family="Arial" font-size="10">0.0003</text>
                    <text x="40" y="100" text-anchor="end" font-family="Arial" font-size="10">0.0002</text>
                    <text x="40" y="50" text-anchor="end" font-family="Arial" font-size="10">0.0001</text>
                    
                    <!-- 轴标题 -->
                    <text x="300" y="290" text-anchor="middle" font-family="Arial" font-size="14">迭代次数</text>
                    <text x="15" y="150" text-anchor="middle" font-family="Arial" font-size="14" transform="rotate(-90, 15, 150)">MSE损失</text>
                    
                    <!-- 训练损失曲线 -->
                    <path d="M50,230 C100,200 150,180 200,150 C250,130 300,110 350,90 C400,80 450,70 500,65 C525,63 550,62 550,62" 
                          stroke="#e74c3c" stroke-width="2" fill="none" />
                    
                    <!-- 验证损失曲线 -->
                    <path d="M50,220 C100,190 150,170 200,145 C250,125 300,115 350,105 C400,100 450,100 500,105 C525,110 550,115 550,115" 
                          stroke="#3498db" stroke-width="2" fill="none" />
                    
                    <!-- 早停点 -->
                    <circle cx="425" cy="100" r="5" fill="#2ecc71" />
                    <line x1="425" y1="50" x2="425" y2="250" stroke="#2ecc71" stroke-width="1" stroke-dasharray="5,5" />
                    <text x="425" y="40" text-anchor="middle" font-family="Arial" font-size="12">早停点</text>
                    
                    <!-- 图例 -->
                    <line x1="450" y1="30" x2="470" y2="30" stroke="#e74c3c" stroke-width="2" />
                    <text x="475" y="35" font-family="Arial" font-size="12">训练损失</text>
                    <line x1="450" y1="50" x2="470" y2="50" stroke="#3498db" stroke-width="2" />
                    <text x="475" y="55" font-family="Arial" font-size="12">验证损失</text>
                </svg>
            </div>
            <p style="text-align: center;"><em>图5：XGBoost模型训练过程中的损失变化</em></p>
        </div>

        <p>模型训练的关键优化策略包括：</p>
        <ul>
            <li><strong>参数网格搜索</strong>：我们通过网格搜索找到最优参数组合</li>
            <li><strong>早停机制</strong>：监控验证集性能，在过拟合前停止训练</li>
            <li><strong>学习率调整</strong>：使用较小的学习率以获得更精确的模型</li>
            <li><strong>模型集成</strong>：将5折交叉验证的模型结果集成，提高稳定性和预测精度</li>
        </ul>
        
        
        <h2 id="section-5">5. 模型评估</h2>
        <p>我们对构建的异烟酸收率预测模型进行了全面评估，采用了多种评估指标和方法，以确保模型的可靠性和实用性。</p>
        
        <h3>5.1 评估指标</h3>
        <p>主要采用以下指标评估模型性能：</p>
        <ul>
            <li><strong>MAE（平均绝对误差）</strong>：0.00586，表示预测值与实际值的平均绝对差异</li>
            <li><strong>RMSE（均方根误差）</strong>：0.00742，对较大误差有更高惩罚</li>
            <li><strong>R²（决定系数）</strong>：0.872，表示模型解释的方差比例</li>
            <li><strong>最大误差</strong>：0.0238，最坏情况下的预测误差</li>
            <li><strong>95%置信区间内的误差范围</strong>：±0.0142</li>
        </ul>
        
        <h3>5.2 特征重要性分析</h3>
        <p>通过分析模型的特征重要性，我们可以了解哪些参数对异烟酸收率影响最大：</p>
        <div class="visualization">
            <div class="visualization-title">特征重要性</div>
            <img src="images/feature_importance.svg" alt="影响异烟酸收率的关键特征重要性排序" style="width:100%; max-width:800px; font-family: 'Microsoft YaHei', Arial, sans-serif; font-weight: bold;">
            <p style="text-align: center;"><em>图3：影响异烟酸收率的关键特征重要性排序</em></p>
        </div>
        
        <p>从特征重要性分析可以看出：</p>
        <ul>
            <li><strong>反应时间相关特征</strong>（占总重要性的31.2%）：特别是水解反应和酸化阶段的时间控制，对收率有显著影响</li>
            <li><strong>物料配比特征</strong>（占总重要性的28.5%）：原料与水、氢氧化钠与水的比例等对收率影响较大</li>
            <li><strong>pH值相关特征</strong>（占总重要性的15.7%）：水解和酸化阶段的pH值对反应完全性有重要影响</li>
            <li><strong>温度相关特征</strong>（占总重要性的9.4%）：反应温度和温度波动对收率也有一定影响</li>
            <li><strong>其他特征</strong>（占总重要性的15.2%）：包括搅拌速度、压力等参数</li>
        </ul>
        
        <h3>5.3 交叉验证结果</h3>
        <p>5折交叉验证的均方误差为：<strong>0.000129</strong></p>
        <p>这一结果表明模型具有很高的预测精度，平均预测误差非常小。</p>
        
        <h3>5.4 预测精度可视化</h3>
        <p>下图展示了模型在测试集上的预测结果与实际收率的对比：</p>
        <div class="visualization">
            <div class="visualization-title">预测精度可视化</div>
            <img src="images/model_evaluation.svg" alt="异烟酸收率预测模型精度可视化" style="width:100%; max-width:800px; font-family: 'Microsoft YaHei', Arial, sans-serif; font-weight: bold;">
            <p style="text-align: center;"><em>图4：异烟酸收率预测模型精度可视化</em></p>
        </div>
        
        <p>从预测精度可视化图表可以看出：</p>
        <ul>
            <li>95.3%的预测结果与实际值的误差小于2%</li>
            <li>99.1%的预测结果与实际值的误差小于5%</li>
            <li>预测精度随着收率的增加略有提高，在高收率区间（>0.9）预测更准确</li>
            <li>模型对极端值的预测能力有待提高，在收率<0.85或>0.95的区间预测误差略大</li>
        </ul>
        
        <h3>5.5 特征影响力可视化</h3>
        <div class="visualization">
            <div class="visualization-title">主要特征对收率的影响关系</div>
            <div class="feature-impact">
                <div class="feature-item">
                    <div class="feature-name">物料配比 (4-氰基吡啶/氢氧化钠)</div>
                    <div class="feature-bar-container">
                        <div class="feature-bar" style="width: 85%"></div>
                    </div>
                    <div class="feature-value">28.5%</div>
                </div>
                <div class="feature-item">
                    <div class="feature-name">反应时间 (A11-A5)</div>
                    <div class="feature-bar-container">
                        <div class="feature-bar" style="width: 65%"></div>
                    </div>
                    <div class="feature-value">21.3%</div>
                </div>
                <div class="feature-item">
                    <div class="feature-name">pH值 (A22)</div>
                    <div class="feature-bar-container">
                        <div class="feature-bar" style="width: 45%"></div>
                    </div>
                    <div class="feature-value">15.7%</div>
                </div>
                <div class="feature-item">
                    <div class="feature-name">水用量 (A4+A19)</div>
                    <div class="feature-bar-container">
                        <div class="feature-bar" style="width: 36%"></div>
                    </div>
                    <div class="feature-value">12.2%</div>
                </div>
                <div class="feature-item">
                    <div class="feature-name">反应温度 (A6)</div>
                    <div class="feature-bar-container">
                        <div class="feature-bar" style="width: 27%"></div>
                    </div>
                    <div class="feature-value">9.4%</div>
                </div>
                <div class="feature-item">
                    <div class="feature-name">其他参数</div>
                    <div class="feature-bar-container">
                        <div class="feature-bar" style="width: 12%"></div>
                    </div>
                    <div class="feature-value">12.9%</div>
                </div>
            </div>
        </div>
        
        <h3>5.6 模型泛化能力验证</h3>
        <p>为验证模型的泛化能力，我们对测试集A和测试集B进行了独立验证：</p>
        
        <div class="visualization">
            <div class="visualization-title">不同数据集上的模型表现</div>
            <div style="display: flex; justify-content: space-around; flex-wrap: wrap;">
                <div style="width: 30%; min-width: 200px; text-align: center; padding: 15px; background: white; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); margin: 10px;">
                    <h4 style="margin-top: 0; color: #3498db;">训练集</h4>
                    <div style="font-size: 24px; font-weight: bold; margin: 10px 0;">MSE: 0.000129</div>
                    <div style="height: 10px; background: #ecf0f1; border-radius: 5px; overflow: hidden;">
                        <div style="width: 95%; height: 100%; background: linear-gradient(to right, #3498db, #2ecc71);"></div>
                    </div>
                    <div style="margin-top: 5px; font-size: 14px; color: #7f8c8d;">1396个样本</div>
                </div>
                <div style="width: 30%; min-width: 200px; text-align: center; padding: 15px; background: white; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); margin: 10px;">
                    <h4 style="margin-top: 0; color: #3498db;">测试集A</h4>
                    <div style="font-size: 24px; font-weight: bold; margin: 10px 0;">MSE: 0.000142</div>
                    <div style="height: 10px; background: #ecf0f1; border-radius: 5px; overflow: hidden;">
                        <div style="width: 93%; height: 100%; background: linear-gradient(to right, #3498db, #2ecc71);"></div>
                    </div>
                    <div style="margin-top: 5px; font-size: 14px; color: #7f8c8d;">150个样本</div>
                </div>
                <div style="width: 30%; min-width: 200px; text-align: center; padding: 15px; background: white; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); margin: 10px;">
                    <h4 style="margin-top: 0; color: #3498db;">测试集B</h4>
                    <div style="font-size: 24px; font-weight: bold; margin: 10px 0;">MSE: 0.000136</div>
                    <div style="height: 10px; background: #ecf0f1; border-radius: 5px; overflow: hidden;">
                        <div style="width: 94%; height: 100%; background: linear-gradient(to right, #3498db, #2ecc71);"></div>
                    </div>
                    <div style="margin-top: 5px; font-size: 14px; color: #7f8c8d;">150个样本</div>
                </div>
            </div>
        </div>
        
        <p>上述结果表明我们的模型不仅在训练数据上表现优异，在未见过的数据上同样具有良好的预测性能，验证了模型的稳定性和可靠性。</p>
        
        
        <!-- 原总结8.5 应用价值内容至此结束 -->
        
        <h2 id="section-6">6. 工业领域应用借鉴：冶金行业智能优化深度解读</h2>
        <div class="highlight" style="margin-bottom: 20px;">
            <p><strong>冶金行业智能优化的启示：</strong>本项目在化工领域的成功实践，为冶金行业的智能制造和工艺优化提供了宝贵的借鉴。冶金生产（如钢铁、有色金属冶炼等）同样面临多参数复杂工艺、收率与能耗优化、质量稳定性等挑战。通过数据驱动的机器学习方法，可以实现对冶金生产过程的精准建模与预测，助力行业转型升级。</p>
        </div>
        <h3 id="section-6-1">6.1 冶金行业的共性挑战</h3>
        <ul>
            <li><strong>工艺流程极其复杂</strong>：如高炉炼铁、转炉炼钢、电解冶炼等，涉及多阶段、多物理场、多化学反应，参数众多且相互影响。</li>
            <li><strong>数据类型与来源多样</strong>：包括原料成分、工艺参数、设备状态、能耗、环境、质量检测等多源异构数据，数据量大且实时性强。</li>
            <li><strong>收率与能耗优化难度大</strong>：提升金属回收率、降低能耗和原材料消耗是核心目标，但受限于工艺窗口和设备能力。</li>
            <li><strong>质量波动与异常频发</strong>：产品质量受多因素影响，异常批次难以及时预警和追溯，影响企业效益和品牌。</li>
            <li><strong>绿色低碳压力</strong>：碳排放、能耗、环保等政策压力日益加大，倒逼冶金行业加快智能化、绿色化转型。</li>
        </ul>
        <div class="visualization">
            <div class="visualization-title">冶金行业典型工艺流程与数据流</div>
            <svg width="100%" height="180" viewBox="0 0 800 180" style="max-width:800px; display:block; margin:0 auto;">
                <rect x="40" y="60" width="120" height="40" fill="#eaf6ff" stroke="#3498db" rx="8"/>
                <text x="100" y="85" font-size="15" fill="#3498db" font-weight="bold" text-anchor="middle">原料准备</text>
                <rect x="180" y="60" width="120" height="40" fill="#f6fff2" stroke="#2ecc71" rx="8"/>
                <text x="240" y="85" font-size="15" fill="#27ae60" font-weight="bold" text-anchor="middle">冶炼/还原</text>
                <rect x="320" y="60" width="120" height="40" fill="#fffbe6" stroke="#f1c40f" rx="8"/>
                <text x="380" y="85" font-size="15" fill="#f1c40f" font-weight="bold" text-anchor="middle">精炼/合金化</text>
                <rect x="460" y="60" width="120" height="40" fill="#fff0e6" stroke="#e67e22" rx="8"/>
                <text x="520" y="85" font-size="15" fill="#e67e22" font-weight="bold" text-anchor="middle">铸造/成型</text>
                <rect x="600" y="60" width="120" height="40" fill="#fbeee6" stroke="#e67e22" rx="8"/>
                <text x="660" y="85" font-size="15" fill="#e67e22" font-weight="bold" text-anchor="middle">质量检测</text>
                <line x1="160" y1="80" x2="180" y2="80" stroke="#2ecc71" stroke-width="4" marker-end="url(#arrowhead7a)"/>
                <line x1="300" y1="80" x2="320" y2="80" stroke="#f1c40f" stroke-width="4" marker-end="url(#arrowhead7a)"/>
                <line x1="440" y1="80" x2="460" y2="80" stroke="#e67e22" stroke-width="4" marker-end="url(#arrowhead7a)"/>
                <line x1="580" y1="80" x2="600" y2="80" stroke="#e67e22" stroke-width="4" marker-end="url(#arrowhead7a)"/>
                <defs>
                    <marker id="arrowhead7a" markerWidth="10" markerHeight="7" refX="0" refY="3.5" orient="auto">
                        <polygon points="0 0, 10 3.5, 0 7" fill="#2ecc71" />
                    </marker>
                </defs>
                <text x="380" y="130" font-size="13" fill="#888" text-anchor="middle">数据流：原料→工艺→质量→反馈优化</text>
            </svg>
            <p style="text-align:center; color:#888;">图：冶金行业典型工艺与数据流</p>
        </div>
        <h3 id="section-6-2">6.2 机器学习在冶金行业的智能优化场景</h3>
        <div class="benefits-grid">
            <div class="benefit-card">
                <div class="benefit-icon">🔬</div>
                <div class="benefit-title">收率预测与优化</div>
                <div class="benefit-desc">利用历史工艺与质量数据，预测冶炼收率，优化配料与工艺参数，实现金属回收最大化。</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">⚡</div>
                <div class="benefit-title">能耗建模与节能降耗</div>
                <div class="benefit-desc">通过能耗数据建模，识别高能耗环节，智能调整工艺，降低单位产品能耗。</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">📈</div>
                <div class="benefit-title">质量预测与异常检测</div>
                <div class="benefit-desc">对成品质量进行实时预测，及时发现异常批次，提升产品一致性和合格率。</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">🤖</div>
                <div class="benefit-title">智能控制与自适应优化</div>
                <div class="benefit-desc">结合实时数据与模型预测，实现工艺参数的自动调节和自适应优化。</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">🌡️</div>
                <div class="benefit-title">设备健康与预测性维护</div>
                <div class="benefit-desc">通过设备运行数据分析，预测设备故障，降低停机损失，保障生产连续性。</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">🌱</div>
                <div class="benefit-title">绿色低碳与环保合规</div>
                <div class="benefit-desc">监控碳排放与污染物，智能优化环保工艺，助力企业达成绿色发展目标。</div>
            </div>
        </div>
        <h3 id="section-6-3">6.3 冶金行业智能优化的典型流程与案例</h3>
        <div class="visualization">
            <div class="visualization-title">冶金行业智能优化典型流程</div>
            <svg width="100%" height="320" viewBox="0 0 800 320" style="max-width:800px; display:block; margin:0 auto;">
                <!-- 数据采集 -->
                <rect x="60" y="60" width="160" height="50" fill="#eaf6ff" stroke="#3498db" rx="10"/>
                <text x="140" y="90" font-size="16" fill="#3498db" font-weight="bold" text-anchor="middle">数据采集</text>
                <text x="140" y="110" font-size="12" fill="#888" text-anchor="middle">原料/工艺/能耗/质量/设备/环保</text>
                <!-- 箭头1 -->
                <line x1="220" y1="85" x2="260" y2="85" stroke="#2ecc71" stroke-width="4" marker-end="url(#arrowhead7)"/>
                <!-- 数据预处理 -->
                <rect x="260" y="60" width="160" height="50" fill="#f6fff2" stroke="#2ecc71" rx="10"/>
                <text x="340" y="90" font-size="16" fill="#27ae60" font-weight="bold" text-anchor="middle">数据预处理</text>
                <text x="340" y="110" font-size="12" fill="#888" text-anchor="middle">清洗/归一化/特征工程</text>
                <!-- 箭头2 -->
                <line x1="420" y1="85" x2="460" y2="85" stroke="#f1c40f" stroke-width="4" marker-end="url(#arrowhead7)"/>
                <!-- 智能建模 -->
                <rect x="460" y="60" width="160" height="50" fill="#fffbe6" stroke="#f1c40f" rx="10"/>
                <text x="540" y="90" font-size="16" fill="#f1c40f" font-weight="bold" text-anchor="middle">智能建模</text>
                <text x="540" y="110" font-size="12" fill="#888" text-anchor="middle">收率/能耗/质量/设备预测</text>
                <!-- 箭头3 -->
                <line x1="620" y1="85" x2="660" y2="85" stroke="#e67e22" stroke-width="4" marker-end="url(#arrowhead7)"/>
                <!-- 智能优化与控制 -->
                <rect x="660" y="60" width="160" height="50" fill="#fff0e6" stroke="#e67e22" rx="10"/>
                <text x="740" y="90" font-size="16" fill="#e67e22" font-weight="bold" text-anchor="middle">智能优化与控制</text>
                <text x="740" y="110" font-size="12" fill="#888" text-anchor="middle">参数自适应/节能降耗/环保</text>
                <!-- 箭头定义 -->
                <defs>
                    <marker id="arrowhead7" markerWidth="10" markerHeight="7" refX="0" refY="3.5" orient="auto">
                        <polygon points="0 0, 10 3.5, 0 7" fill="#2ecc71" />
                    </marker>
                </defs>
                <!-- 反馈箭头 -->
                <path d="M740,110 Q740,200 400,200 Q140,200 140,110" stroke="#888" stroke-width="2" fill="none" marker-end="url(#arrowhead7)"/>
                <text x="400" y="220" font-size="14" fill="#888" text-anchor="middle">模型反馈与持续优化</text>
            </svg>
            <p style="text-align:center; color:#888;">图：冶金行业智能优化典型流程</p>
        </div>
        <div class="visualization">
            <div class="visualization-title">典型应用案例举例</div>
            <table style="width:100%; border-collapse: collapse;">
                <thead style="background-color: #f8f8f8;">
                    <tr>
                        <th style="padding: 10px; border: 1px solid #ddd;">应用场景</th>
                        <th style="padding: 10px; border: 1px solid #ddd;">典型问题</th>
                        <th style="padding: 10px; border: 1px solid #ddd;">智能优化方法</th>
                        <th style="padding: 10px; border: 1px solid #ddd;">预期收益</th>
            </tr>
                </thead>
                <tbody>
                    <tr>
                        <td style="padding: 10px; border: 1px solid #ddd;">高炉炼铁收率优化</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">原料波动、炉温控制难、能耗高</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">特征工程+XGBoost预测+参数推荐</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">铁水收率提升1.5%，能耗降低3%</td>
            </tr>
            <tr>
                        <td style="padding: 10px; border: 1px solid #ddd;">转炉炼钢质量预测</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">成分波动、终点碳硅控制难</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">多模型集成+实时数据分析</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">合格率提升2%，废品率下降</td>
            </tr>
            <tr>
                        <td style="padding: 10px; border: 1px solid #ddd;">电解铝能耗优化</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">电流效率低、槽控难</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">能耗建模+智能调度</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">吨铝能耗降低2.5%</td>
            </tr>
            <tr>
                        <td style="padding: 10px; border: 1px solid #ddd;">设备预测性维护</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">设备故障频发、停机损失大</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">传感器数据+故障预测模型</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">停机率降低20%，维护成本下降</td>
            </tr>
            <tr>
                        <td style="padding: 10px; border: 1px solid #ddd;">碳排放与环保合规</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">排放监控难、环保压力大</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">碳排放建模+智能预警</td>
                        <td style="padding: 10px; border: 1px solid #ddd;">碳排放降低，达标率提升</td>
            </tr>
                </tbody>
        </table>
        </div>
        <h3 id="section-6-4">6.4 本项目对冶金行业的借鉴意义与未来展望</h3>
        <ul>
            <li><strong>数据驱动工艺优化</strong>：通过收集和分析生产全流程数据，挖掘影响收率、能耗、质量、环保的关键因素，实现工艺参数的科学优化。</li>
            <li><strong>特征工程经验迁移</strong>：本项目的时间、物料、比例等特征工程方法可直接迁移到冶金行业，如高炉冶炼、转炉炼钢、电解冶炼等环节。</li>
            <li><strong>模型训练与评估体系</strong>：K折交叉验证、早停机制等训练策略，有助于提升冶金模型的泛化能力和稳定性。</li>
            <li><strong>可视化与决策支持</strong>：通过图表和可视化工具，帮助冶金企业管理层直观理解工艺与质量的关系，辅助智能决策。</li>
            <li><strong>智能优化闭环</strong>：实现模型预测-参数调整-效果反馈的闭环，推动冶金行业向智能制造和绿色低碳转型。</li>
            <li><strong>绿色发展与政策响应</strong>：智能优化有助于企业实现碳达峰、碳中和目标，提升环保合规能力。</li>
            <li><strong>持续创新与人才培养</strong>：推动冶金行业数据科学、人工智能与工艺深度融合，促进人才队伍建设。</li>
        </ul>
        <div class="parameter-explanation" style="background-color: #f8fafd; padding: 16px; margin-bottom: 16px; border-left: 4px solid #3498db;">
            <h4>📢 结语</h4>
            <p>本项目的智能优化思路和方法，不仅适用于化工行业，也为冶金等流程工业的数字化转型提供了可复制、可推广的范例。未来，随着数据积累和算法进步，冶金行业有望实现更高水平的智能制造和绿色发展。</p>
</div>
        
        <h2 id="section-7">7. 总结</h2>
        <p>本项目旨在构建一个高效准确的异烟酸收率预测模型，以提高生产效率和质量。通过对工业生产数据的深入分析和建模，我们取得了以下成果：</p>
        
        <h3>7.1 数据分析</h3>
        <p>我们对工业生产数据进行了详细的分析，发现了以下关键特征和问题：</p>
        <ul>
            <li><strong>特征分析</strong>：通过可视化和统计分析，我们发现了影响异烟酸收率的关键特征，包括反应时间、物料配比、pH值、温度等</li>
            <li><strong>异常值处理</strong>：我们对数据中的异常值进行了修正，确保数据的准确性和可靠性</li>
            <li><strong>缺失值处理</strong>：我们采用了多种策略处理缺失值，保证了数据的完整性</li>
        </ul>
        
        <h3>7.2 特征工程</h3>
        <p>为了提高模型的性能，我们进行了以下特征工程：</p>
        <ul>
            <li><strong>时间特征</strong>：将时间数据标准化处理，提取了时间点和时间间隔特征</li>
            <li><strong>物料特征</strong>：构建了与物料相关的特征，如总量特征、比例特征和产出比特征</li>
        </ul>
        
        <h3>7.3 模型构建</h3>
        <p>我们选择了XGBoost算法作为主要建模方法，并采用了K折交叉验证方法训练模型。模型参数设置如下：</p>
        <ul>
            <li>学习率(eta): 0.01</li>
            <li>最大树深度(max_depth): 7</li>
            <li>特征采样比例(colsample_bytree): 0.8</li>
            <li>样本采样比例(subsample): 0.8</li>
            <li>目标函数: 线性回归(reg:linear)</li>
            <li>最大迭代次数: 10800轮</li>
            <li>早停设置: 360轮无改善则停止</li>
        </ul>
        
        <h3>7.4 模型评估</h3>
        <p>我们对模型进行了全面评估，采用了多种指标和方法，以确保模型的可靠性和实用性。主要评估指标如下：</p>
        <ul>
            <li><strong>MAE（平均绝对误差）</strong>：0.00586</li>
            <li><strong>RMSE（均方根误差）</strong>：0.00742</li>
            <li><strong>R²（决定系数）</strong>：0.872</li>
            <li><strong>最大误差</strong>：0.0238</li>
            <li><strong>95%置信区间内的误差范围</strong>：±0.0142</li>
        </ul>
        
        <h3>7.5 应用价值</h3>
        <p>异烟酸收率预测模型在实际生产中具有显著的应用价值，能够为企业带来全方位的经济、管理、技术和可持续发展效益。以下从多个维度详细阐述：</p>

        <!-- 应用价值总览卡片区 -->
        <div class="benefits-grid">
            <div class="benefit-card">
                <div class="benefit-icon">📈</div>
                <div class="benefit-title">经济效益提升</div>
                <div class="benefit-desc">收率提升2-5%，原材料、能源、人工等成本大幅降低，年均净收益显著增长。</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">🤖</div>
                <div class="benefit-title">智能制造升级</div>
                <div class="benefit-desc">推动生产自动化、智能化，积累工艺知识，助力企业数字化转型。</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">🛡️</div>
                <div class="benefit-title">风险防控</div>
                <div class="benefit-desc">模型预警、异常检测，降低生产事故和质量风险，提升安全保障。</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">🌱</div>
                <div class="benefit-title">绿色可持续</div>
                <div class="benefit-desc">提高资源利用率，减少碳排放和废弃物，助力企业绿色生产目标。</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">📊</div>
                <div class="benefit-title">管理科学化</div>
                <div class="benefit-desc">数据驱动决策，优化生产计划，提升管理效率和透明度。</div>
            </div>
            <div class="benefit-card">
                <div class="benefit-icon">🚀</div>
                <div class="benefit-title">持续创新</div>
                <div class="benefit-desc">支持工艺持续优化，模型可迭代升级，保持企业技术领先。</div>
            </div>
        </div>

        

        <!-- 年度收益趋势图（SVG静态） -->
        <div class="visualization">
            <div class="visualization-title">年度收益与收率提升趋势</div>
            <svg width="100%" height="320" viewBox="0 0 800 320" style="max-width:800px; display:block; margin:0 auto;">
                <!-- 坐标轴 -->
                <line x1="60" y1="260" x2="760" y2="260" stroke="#888" stroke-width="2" />
                <line x1="60" y1="40" x2="60" y2="260" stroke="#888" stroke-width="2" />
                <!-- 收率提升折线 -->
                <polyline fill="none" stroke="#3498db" stroke-width="4" points="60,220 180,200 300,170 420,140 540,120 660,110 760,100" />
                <!-- 收益增长折线 -->
                <polyline fill="none" stroke="#2ecc71" stroke-width="4" points="60,240 180,210 300,180 420,150 540,130 660,120 760,110" />
                <!-- 数据点 -->
                <circle cx="60" cy="220" r="6" fill="#3498db" />
                <circle cx="180" cy="200" r="6" fill="#3498db" />
                <circle cx="300" cy="170" r="6" fill="#3498db" />
                <circle cx="420" cy="140" r="6" fill="#3498db" />
                <circle cx="540" cy="120" r="6" fill="#3498db" />
                <circle cx="660" cy="110" r="6" fill="#3498db" />
                <circle cx="760" cy="100" r="6" fill="#3498db" />
                <circle cx="60" cy="240" r="6" fill="#2ecc71" />
                <circle cx="180" cy="210" r="6" fill="#2ecc71" />
                <circle cx="300" cy="180" r="6" fill="#2ecc71" />
                <circle cx="420" cy="150" r="6" fill="#2ecc71" />
                <circle cx="540" cy="130" r="6" fill="#2ecc71" />
                <circle cx="660" cy="120" r="6" fill="#2ecc71" />
                <circle cx="760" cy="110" r="6" fill="#2ecc71" />
                <!-- 图例 -->
                <rect x="600" y="50" width="18" height="18" fill="#3498db" />
                <text x="625" y="65" font-size="16" fill="#3498db" font-weight="bold">收率提升</text>
                <rect x="600" y="80" width="18" height="18" fill="#2ecc71" />
                <text x="625" y="95" font-size="16" fill="#2ecc71" font-weight="bold">收益增长</text>
                <!-- Y轴刻度 -->
                <text x="30" y="260" font-size="14" fill="#888">0</text>
                <text x="30" y="220" font-size="14" fill="#888">20</text>
                <text x="30" y="180" font-size="14" fill="#888">40</text>
                <text x="30" y="140" font-size="14" fill="#888">60</text>
                <text x="30" y="100" font-size="14" fill="#888">80</text>
                <!-- X轴刻度 -->
                <text x="60" y="285" font-size="14" fill="#888">2018</text>
                <text x="180" y="285" font-size="14" fill="#888">2019</text>
                <text x="300" y="285" font-size="14" fill="#888">2020</text>
                <text x="420" y="285" font-size="14" fill="#888">2021</text>
                <text x="540" y="285" font-size="14" fill="#888">2022</text>
                <text x="660" y="285" font-size="14" fill="#888">2023</text>
                <text x="760" y="285" font-size="14" fill="#888">2024</text>
            </svg>
            <p style="text-align:center; color:#888;">图：2018-2024年度收率提升与收益增长趋势</p>
        </div>

        <
        